package com.sxj.corejava.code07_面向对象;

/**
 * @author 石小俊
 * @date 2024年03月16日 8:31
 */
public class Test06_构造方法 {
    public static void main(String[] args) {
        // 在创建对象时,根据传递的参数不同,调用不同的构造方法
        User user = new User("admin","123456");
        System.out.println(user.id);
        System.out.println(user.username);
        System.out.println(user.password);
    }
}
class User{
    int id;
    String username;
    String password;

    // 当类中没有定义任何构造方法时,默认存在一个无参构造方法
    public User(){

    }

    // 一旦类中定义了构造方法,则默认的无参构造方法消失
    public User(int id){
        this.id = id;
    }

    public User(String username,String password){
        this.username = username;
        this.password = password;
    }

    public User(String username){
        this.username = username;
    }

    public User(int id,String username,String password){
        // this(参数列表)表示调用当前类中对应的构造方法
//        this(id);
        // 调用构造方法时,this(参数列表)只能处于第一行
        // 且一个构造方法中只能调用一次
        this(username,password);
        this.id = id;
//        this.username = username;
//        this.password = password;
    }

    private void test(){

    }
}
